LINQ (Language Integrated Query) মূলত ডেটা কোয়ারি করতে ব্যবহৃত হয়, তবে এটি ইনমেমরি ডেটা অপারেশনগুলো (যেমন লিস্ট বা অ্যারে) উপর কাজ করে। তাই LINQ এর মাধ্যমে ডেটা আপডেট, ডিলিট বা ইনসার্ট করার জন্য কিছু কৌশল প্রয়োগ করতে হয়। ডেটাবেস বা অন্যান্য স্টোরেজ সিস্টেমে পরিবর্তন করতে হলে, LINQ এর পাশাপাশি ডেটা ম্যানিপুলেশন ফ্রেমওয়ার্ক (যেমন Entity Framework) ব্যবহার করা হয়।
তবে, ইনমেমরি ডেটা (যেমন List, Array ইত্যাদি) ম্যানিপুলেশনের জন্য LINQ এর মাধ্যমে কিছু নির্দিষ্ট পদক্ষেপে এই অপারেশনগুলো করা যায়।
LINQ এর মাধ্যমে ইনসার্ট অপারেশন সরাসরি করা সম্ভব নয়, কারণ LINQ মূলত ডেটা রিড (read) এবং কোয়্যারির কাজ করে। তবে, আপনি ইনমেমরি ডেটা সংগ্রহে নতুন উপাদান যুক্ত করতে পারবেন Add
বা AddRange
মেথড ব্যবহার করে।
List<int> numbers = new List<int> { 1, 2, 3, 4 };
// নতুন সংখ্যা যোগ করা
numbers.Add(5);
foreach (var num in numbers)
{
Console.WriteLine(num); // Output: 1, 2, 3, 4, 5
}
এখানে, Add()
মেথড ব্যবহার করে নতুন সংখ্যা ৫ লিস্টে ইনসার্ট করা হয়েছে।
List<int> numbers = new List<int> { 1, 2, 3, 4 };
// একাধিক উপাদান যোগ করা
numbers.AddRange(new List<int> { 5, 6, 7 });
foreach (var num in numbers)
{
Console.WriteLine(num); // Output: 1, 2, 3, 4, 5, 6, 7
}
এখানে, AddRange()
মেথড ব্যবহার করে একাধিক সংখ্যা লিস্টে যোগ করা হয়েছে।
LINQ সরাসরি আপডেট অপারেশন করতে সক্ষম নয়, তবে আপনি একটি সংগ্রহের মধ্যে ডেটা পরিবর্তন করতে পারেন লুপিং এবং সংশ্লিষ্ট মান আপডেট করার মাধ্যমে।
ধরা যাক, আমাদের একটি Employee
ক্লাস আছে এবং আমরা কর্মীর বয়স আপডেট করতে চাই:
public class Employee
{
public string Name { get; set; }
public int Age { get; set; }
}
List<Employee> employees = new List<Employee>
{
new Employee { Name = "Alice", Age = 25 },
new Employee { Name = "Bob", Age = 30 },
new Employee { Name = "Charlie", Age = 35 }
};
// Bob এর বয়স 30 থেকে 32 তে আপডেট করা
var employeeToUpdate = employees.FirstOrDefault(emp => emp.Name == "Bob");
if (employeeToUpdate != null)
{
employeeToUpdate.Age = 32; // বয়স আপডেট
}
foreach (var emp in employees)
{
Console.WriteLine($"Name: {emp.Name}, Age: {emp.Age}");
}
এখানে, FirstOrDefault
মেথড ব্যবহার করে "Bob" নামক কর্মীকে খুঁজে বের করা হয়েছে এবং তার বয়স আপডেট করা হয়েছে।
employees.Where(emp => emp.Age < 30)
.ToList()
.ForEach(emp => emp.Age += 1); // 30 এর নিচে বয়সের সকল কর্মীর বয়স ১ বছর বাড়ানো
foreach (var emp in employees)
{
Console.WriteLine($"Name: {emp.Name}, Age: {emp.Age}");
}
এখানে, Where
ক্লজ ব্যবহার করে বয়স ৩০ এর নিচে থাকা কর্মীদের বয়স ১ বছর বাড়ানো হয়েছে।
LINQ সরাসরি ডিলিট অপারেশন করতে পারে না, তবে আপনি Remove বা RemoveAll মেথড ব্যবহার করে কোনো উপাদান সংগ্রহ থেকে মুছে ফেলতে পারেন।
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// 3 মুছে ফেলা
numbers.Remove(3);
foreach (var num in numbers)
{
Console.WriteLine(num); // Output: 1, 2, 4, 5
}
এখানে, Remove()
মেথড ব্যবহার করে লিস্ট থেকে সংখ্যা ৩ মুছে ফেলা হয়েছে।
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
// 4 এর কম সংখ্যা মুছে ফেলা
numbers.RemoveAll(num => num < 4);
foreach (var num in numbers)
{
Console.WriteLine(num); // Output: 4, 5, 6
}
এখানে, RemoveAll()
মেথড ব্যবহার করে ৪ এর নিচের সব সংখ্যা মুছে ফেলা হয়েছে।
List<Employee> employees = new List<Employee>
{
new Employee { Name = "Alice", Age = 25 },
new Employee { Name = "Bob", Age = 30 },
new Employee { Name = "Charlie", Age = 35 }
};
// Bob কে মুছে ফেলা
var employeeToRemove = employees.FirstOrDefault(emp => emp.Name == "Bob");
if (employeeToRemove != null)
{
employees.Remove(employeeToRemove);
}
foreach (var emp in employees)
{
Console.WriteLine($"Name: {emp.Name}, Age: {emp.Age}");
}
এখানে, FirstOrDefault
মেথড ব্যবহার করে "Bob" নামক কর্মীকে খুঁজে বের করা হয়েছে এবং Remove
মেথড ব্যবহার করে সেটিকে লিস্ট থেকে মুছে ফেলা হয়েছে।
যদি আপনি ডেটাবেস এ কাজ করছেন, তবে LINQ-এর মাধ্যমে ডেটা ইনসার্ট, আপডেট এবং ডিলিট করার জন্য Entity Framework (EF) ব্যবহার করা হয়। এখানে, DbContext এবং LINQ to Entities ব্যবহার করে ডেটাবেসে এই অপারেশনগুলো করা যায়।
using (var context = new MyDbContext())
{
// ইনসার্ট
var newEmployee = new Employee { Name = "David", Age = 40 };
context.Employees.Add(newEmployee);
context.SaveChanges();
// আপডেট
var employeeToUpdate = context.Employees.FirstOrDefault(e => e.Name == "Bob");
if (employeeToUpdate != null)
{
employeeToUpdate.Age = 32;
context.SaveChanges();
}
// ডিলিট
var employeeToDelete = context.Employees.FirstOrDefault(e => e.Name == "Charlie");
if (employeeToDelete != null)
{
context.Employees.Remove(employeeToDelete);
context.SaveChanges();
}
}
এখানে:
Add()
মেথড ব্যবহার করে নতুন Employee
ডেটাবেসে যোগ করা হয়েছে।FirstOrDefault
মেথড ব্যবহার করে ডেটাবেস থেকে কর্মী নির্বাচন এবং তার বয়স আপডেট করা হয়েছে।Remove()
মেথড ব্যবহার করে ডেটাবেস থেকে কর্মী মুছে ফেলা হয়েছে।Add()
, Remove()
, AddRange()
, RemoveAll()
ইত্যাদি মেথড ব্যবহার করে করতে হয়।common.read_more